#include <iostream>
#include <thread>
#include <functional>
#include "threadpool.hpp"

// 一个简单的测试任务，它执行一个打印操作
void test_task()
{
    std::cout << "Test task is running on thread " << std::this_thread::get_id() << std::endl;
}

// 测试函数，它将使用线程池来执行测试任务
void test_thread_pool(ThreadPool& pool)
{
    // 提交10个测试任务到线程池
    for (int i = 0; i < 15; i++)
    {
        pool.AddPoolTask(test_task);
    }
}
int main()
{
    // 创建一个包含10个线程的线程池
    ThreadPool pool(12, 6, 10);

    // 测试线程池
    test_thread_pool(pool);

    // 等待线程池中的所有工作线程完成
    pool.~ThreadPool(); // 析构函数将等待所有线程完成

    return 0;
}
